home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / hack / 3_1_3 / sys / amiga / makefile.ami < prev    next >
Encoding:
Makefile  |  1993-06-27  |  34.9 KB  |  1,122 lines

  1. #    NetHack Makefile.
  2. #    SCCS Id: @(#)Makefile.ami    3.3    93/02/02
  3. # Copyright (c) Kenneth Lorber, Bethesda, Maryland, 1991, 1992, 1993.
  4. # NetHack may be freely redistributed.  See license for details.
  5.  
  6. # This makefile is arranged for compiling for the Amiga with SAS/C 6.2 but
  7. # can be configured for compiling with Manx C 5, or registered DICE
  8. # with simple changes.  The appropriate changes are identified by #[compiler]
  9. # where compiler is one of: SAS6, MANX, or DICE; the options in
  10. # this makefile as should be set according to the compiler being used.
  11.  
  12. # Note: When using the Manx compiler, an alternate make utility is
  13. # required. The bundled Aztec make is just too damaged.
  14.  
  15. # The following assignments should be made before using this makefile:
  16. #
  17. #   HackExe:    directory where final executable should go
  18. #   NetHack:    directory where other runtime support files should go
  19. #   Amiga:    "amiga" directory
  20. #   Dat:    "dat" directory
  21. #   Doc:    "doc" directory
  22. #   Incl:    "include" directory
  23. #   Share:    "share" directory
  24. #   NHS:    "src" directory
  25. #   TTY:    "win/tty" directory
  26. #   Util:    "util" directory
  27. #   OBJ:    destination for object files for main binary
  28. #   OBJO:    destination for object files for everything else
  29. #        NB: OBJ and OBJO MUST be different directories
  30. #
  31. # Startup makefile with:
  32. #
  33. #[SAS6]
  34. #    cd OBJ:
  35. #    smake -f Amiga:Makefile.ami
  36. #    cd NetHack:
  37. #    smake -f Amiga:Makefile.ami install
  38. #
  39. #[MANX]
  40. #    cd OBJ:
  41. #    make -f Amiga:Makefile.ami
  42. #    cd NetHack:
  43. #    make -f Amiga:Makefile.ami install
  44. #
  45. #[DICE]
  46. #    cd OBJ:
  47. #    make -f Amiga:Makefile.ami
  48. #    cd NetHack:
  49. #    make -f Amiga:Makefile.ami install
  50. #
  51. # You may use following targets on lmk/make command lines:
  52. #   all        do it all (default)
  53. #   link    just create $(GAME) from object files
  54. #   obj        just create common object files
  55. #   obja    just create amiga object files
  56. #   objs    just create shared object files
  57. #   clean    deletes the object files
  58. #   spotless    deletes the object files, $(GAME), and more
  59. #
  60. # Note:  We do not build the Guidebook here since it needs tbl
  61. # (See the file sys/unix/Makefile.doc for more information)
  62.  
  63. # Precompiled header files:
  64. #   $(HDEP) should appear in any dependency list for an object file where
  65. #   we would want to make use of the precompiled version of Incl:hack.h,
  66. #   while $(CSYM) should appear in the C compiler command line that creates
  67. #   any such object file.  (Changes made here should agree with the $(HDEP):
  68. #   target that appears later in this makefile.)
  69. #
  70. #   Notice that since this file would be created on Ram: that we would
  71. #   end up recompiling everything if we followed the normal make sequence.
  72. #   Thus, we could use:
  73. #
  74. #[SAS6]
  75. #    cd NetHack:
  76. #    smake -f Amiga:Makefile.ami Ram:hack.sym
  77. #    setdate Ram:hack.sym {date & time of Incl:hack.h}
  78. #    smake -f Amiga:Makefile.ami
  79. #
  80. #[MANX]
  81. #    cd NetHack:
  82. #    make -f Amiga:Makefile.ami Ram:hack.sym
  83. #    setdate Ram:hack.sym {date & time of Incl:hack.h}
  84. #    make -f Amiga:Makefile.ami
  85.  
  86. #[SAS5]
  87. #   If we were to use the precompiled header file feature in a newer version
  88. #   of SAS/C, we would comment out these following two lines.
  89. #   If we don't use precompiled header files, we uncomment it as well.
  90.  
  91. HDEP    = Incl:hack.h
  92. CSYM    =
  93.  
  94. #[MANX]
  95. #   If we were compiling with Aztec, and wanted to use the symbol table
  96. #   pre-loading feature, we would uncomment these following two lines.
  97.  
  98. #HDEP    = Ram:hack.sym
  99. #CSYM    = +IRam:hack.sym
  100.  
  101. #[DICE]
  102. #   If we were compiling with DICE and wanted to use the symbol table
  103. #   pre-loading feature, we would uncomment these following two lines.
  104.  
  105. #HDEP    = Incl:hack.sym
  106. #CSYM    = -HIncl:hack.sym=Incl:hack.h
  107.  
  108. # [OPTION] Pathname for (optional) uudecode program:
  109. #   If uudecode is available for use by this makefile, give its name below.
  110. #   Use a harmless command (like echo) otherwise.
  111.  
  112. #UUDEC    = echo
  113. UUDEC    = uudecode
  114.  
  115. # Flex/Bison command assignments -- Useful only if you have flex/bison
  116. FLEX    = flex #-Sshare:flexhack.skel
  117. BISON    = bison
  118. # FBFIL and FBLIB may be used, if required by your version of flex or bison,
  119. # to specify additional files or libraries to be linked with
  120. FBFIL    =
  121. FBLIB    = #lib lib:compat.lib
  122.  
  123. # If you're compiling this on a 1.3 system, you'll have to uncomment the
  124. # following (for use with the ifchange script below).  Also useful instead of
  125. # "protect +s ifchange"
  126. EXECUTE = execute
  127.  
  128. # SHARED LIBRARY CONFIGURATION
  129. # to build for shared libraries, you need these two objects
  130. # LIBOBJS = OBJ:aglue.o OBJ:amilib.o
  131.  
  132. # NON-SHARED LIBRARY CONFIGURATION
  133. # To build for one particular windowing configuration,
  134. # you need these seven objects
  135. LIBOBJS = OBJ:winami.o OBJ:winstr.o OBJ:winreq.o OBJ:winfuncs.o \
  136.       OBJ:winkey.o OBJ:winmenu.o OBJ:amiwind.o
  137.  
  138. AMDEP = amiga:winproto.h amiga:winext.h amiga:windefs.h Incl:winami.h
  139.  
  140. # Pathname for the C compiler being used.
  141.  
  142. #[SAS6]
  143. CC    = sc
  144. ASM    = asm
  145.  
  146. #[MANX]
  147. #CC    = cc
  148.  
  149. #[DICE]
  150. #CC    = dcc
  151.  
  152. # Compilation flags for selected C Compiler:
  153. #   $(CFLAGS) should appear before filename arguments of $(CC) command line.
  154.  
  155. #[SAS6]
  156. #   Note: make sure your CLI stack size is large (at least 50K) or lev_comp
  157. #   and makedefs may fail terribly - stack checking is disabled.
  158. #
  159. #  **** WARNING ****    GST support is not fool proof.  You must make makedefs
  160. #            without a GST first so that the generated headers
  161. #            that are part of the GST can be made.
  162. #
  163. #GSTSRC=Amiga:amigst.c
  164. #
  165. #GSTHEAD=Incl:hack.h Incl:pm.h Incl:trap.h Incl:onames.h \
  166. #    Amiga:winami.p Amiga:amidos.p Amiga:amiwind.p
  167. #
  168. #GSTFILE=OBJ:NetHack.gst
  169. #MKGSTFILE=OBJ:MakeDefs.gst
  170. #NHGSTFILE=OBJ:Game.gst
  171. #COPYMGST=copymgst
  172. #COPYNGST=copyngst
  173. # undefine this to not compile with GSTs
  174. #GST=gst=$(GSTFILE)
  175. #
  176. VIEWWINDOW=#define=VIEWWINDOW
  177. DEBUG=debug=l
  178. #OPTFLAGS=opt optsize optinl optcomp=10 optpeep optgo optdep=5 \
  179.     optrdep=5 optalias
  180. CFLAGS    = data=far nminc $(DEBUG) idir=incl: cpu=any nostkchk ign=104 \
  181.     nover codename=none ignore=85,62 strmerge ppbuf=8000 \
  182.     $(OPTFLAGS) \
  183.     ${VIEWWINDOW} \
  184.     afp $(ERRREXX) $(GST)
  185. # for files that are too large for the standard flags:
  186. CFLAGS2 = code=far nostrmerge
  187. WBCFLAGS = ignore=217,62 data=far ansi nminc code=far idir=incl: cpu=any afp \
  188.     debug=sf $(ERRREXX) $(GST)
  189. WBC2FLAGS = define=CLI
  190. SPLFLAGS = ignore=77 define=SPLIT dollarok
  191.  
  192. #[MANX]
  193. #CFLAGS = -iincl: -mc -md -ms -pa -ps -bs -wo -qq
  194. #WBCFLAGS = -mc -md -ms -pa -ps -bs -wo -qq -pp
  195.  
  196. #[DICE]
  197. #CFLAGS = -c -Iincl: -mD -mC -ms
  198. #WBCFLAGS = -c -ms
  199.  
  200. # Components of varous link command lines:
  201. #   $(LINK) should be the pathname of the linker being used (with any options
  202. #   that should appear at the beginning of the command line).  The name of the
  203. #   output file should appear immediately after $(LINK).  $(LIN) should appear
  204. #   before the list of object files in each link command.  $(LLINK) should
  205. #   appear as the list of object files in the link command line that creates
  206. #   the NetHack executable.  $(LLIB) should appear at the end of each link
  207. #   command line.
  208.  
  209. # Note: amiga.lib added due to missing prototypes/pragmas.
  210. # Should be deleted when this is resolved.
  211.  
  212. #[SAS6]
  213.  
  214. LINK    = slink noicons maxhunk 10000 to
  215. LIN    = from lib:catch.o
  216. LLINK    = with Amiga:ami.lnk
  217. LLIB    = lib Lib:sc.lib lib lib:amiga.lib BATCH #scnb.lib or sc.lib
  218. FLLIB    = $(FBLIB) lib Lib:sc.lib BATCH
  219. OBJSPEC = objname=
  220. PNSPEC =
  221. INCLSPEC = idir=
  222. DEFSPEC = define=
  223. IGNSPEC = ignore=
  224. COMPACT_HEADERS=$(GSTFILE) $(COPYNGST)
  225.  
  226. #[MANX]
  227.  
  228. #LINK    = ln -g +q +ss -o
  229. #LIN    =
  230. #LLINK    = -f Amiga:ami.lnk
  231. #LLIB    = -lcl16
  232. #FLLIB  = -lcl16
  233. #OBJSPEC = -o
  234. #PNSPEC = -o
  235. #INCLSPEC = -i
  236. #DEFSPEC = -d
  237. #IGNSPEC = -j
  238.  
  239. #[DICE]
  240.  
  241. #LINK     = dcc -s -o -frag
  242. #LIN     =
  243. #LLINK     = @Amiga:ami.lnk
  244. #LLIB     =
  245. #FLLIB     = -l$(FBLIB)
  246. #OBJSPEC = -o
  247. #PNSPEC = -o
  248. #INCLSPEC = -i
  249. #DEFSPEC = -d
  250. #IGNSPEC = -j
  251.  
  252. # Name of the game:
  253.  
  254. GAME    = HackExe:NetHack
  255.  
  256. # A more reasonable random number generator (recommended for the Amiga):
  257.  
  258. RANDOBJ    = OBJ:random.o
  259.  
  260. .PRECIOUS:  Incl:config.h Incl:decl.h Incl:hack.h Incl:permonst.h Incl:you.h
  261.  
  262. # Almost nothing below this line should have to be changed.
  263. # (Exceptions are marked by [SAS6], [MANX], etc.)
  264. #
  265. # Other things that have to be reconfigured are in config.h,
  266. # (amiconf.h, pcconf.h), and possibly system.h, tradstdc.h.
  267.  
  268. # Object files for makedefs:
  269.  
  270. MAKEOBJS = \
  271.     OBJO:makedefs.o OBJ:monst.o OBJ:objects.o
  272.  
  273. # Object files for special levels compiler:
  274.  
  275. SPLEVOBJS = \
  276.     OBJO:lev_yacc.o OBJO:lev_lex.o    OBJO:lev_main.o \
  277.     OBJ:decl.o     OBJ:drawing.o    OBJ:monst.o \
  278.     OBJ:objects.o
  279.  
  280. # Object files for dungeon compiler
  281.  
  282. DGNCOMPOBJS = \
  283.     OBJO:dgn_yacc.o    OBJO:dgn_lex.o    OBJO:dgn_main.o OBJ:alloc.o OBJO:panic.o
  284.  
  285. # Object files for NetHack:
  286.  
  287. COMMOBJ = \
  288.     OBJ:allmain.o    OBJ:alloc.o    OBJ:apply.o     OBJ:artifact.o    \
  289.     OBJ:attrib.o    OBJ:ball.o    OBJ:bones.o    OBJ:botl.o    \
  290.     OBJ:cmd.o    OBJ:dbridge.o    OBJ:decl.o    OBJ:detect.o    \
  291.     OBJ:display.o    OBJ:do.o    OBJ:do_name.o    OBJ:do_wear.o    \
  292.     OBJ:dog.o    OBJ:dogmove.o    OBJ:dokick.o    OBJ:dothrow.o    \
  293.     OBJ:drawing.o    OBJ:dungeon.o    OBJ:eat.o    OBJ:end.o    \
  294.     OBJ:engrave.o    OBJ:exper.o    OBJ:explode.o    OBJ:extralev.o    \
  295.     OBJ:files.o    OBJ:fountain.o     OBJ:hack.o    OBJ:invent.o    \
  296.      OBJ:lock.o    OBJ:mail.o    OBJ:makemon.o    OBJ:mcastu.o    \
  297.     OBJ:mhitm.o    OBJ:mhitu.o    OBJ:minion.o    OBJ:mklev.o    \
  298.     OBJ:mkmap.o    OBJ:mkmaze.o    OBJ:mkobj.o    OBJ:mkroom.o    \
  299.     OBJ:mon.o    OBJ:mondata.o    OBJ:monmove.o    OBJ:monst.o    \
  300.     OBJ:mplayer.o    OBJ:mthrowu.o    OBJ:muse.o    OBJ:music.o    \
  301.     OBJ:o_init.o    OBJ:objects.o    OBJ:objnam.o    OBJ:options.o    \
  302.     OBJ:pager.o    OBJ:pickup.o    OBJ:polyself.o    OBJ:potion.o    \
  303.     OBJ:pline.o     OBJ:hacklib.o    OBJ:pray.o    OBJ:priest.o    \
  304.     OBJ:quest.o    OBJ:questpgr.o    OBJ:read.o    OBJ:rect.o    \
  305.     OBJ:restore.o    OBJ:rnd.o    OBJ:rumors.o    OBJ:save.o    \
  306.     OBJ:shk.o    OBJ:shknam.o    OBJ:sit.o    OBJ:sounds.o    \
  307.     OBJ:sp_lev.o    OBJ:spell.o    OBJ:steal.o    OBJ:timeout.o    \
  308.     OBJ:topten.o    OBJ:track.o    OBJ:trap.o    OBJ:u_init.o    \
  309.     OBJ:uhitm.o    OBJ:vault.o    OBJ:version.o    OBJ:vision.o    \
  310.     OBJ:weapon.o    OBJ:were.o    OBJ:wield.o    OBJ:windows.o    \
  311.     OBJ:wizard.o    OBJ:worm.o    OBJ:worn.o    OBJ:write.o    \
  312.     OBJ:zap.o
  313.  
  314. MAKEDEFOBJ = \
  315.     OBJ:monstr.o
  316.  
  317. AMIGAOBJ = \
  318.     OBJ:amidos.o    OBJ:amirip.o     OBJ:amiwbench.o \
  319.     $(LIBOBJS) OBJ:amisnd.o
  320.  
  321. SHAREOBJ = \
  322.     OBJ:pcmain.o    $(RANDOBJ)
  323.  
  324. TTYOBJ = \
  325.     OBJ:getline.o OBJ:termcap.o OBJ:topl.o OBJ:wintty.o OBJ:amitty.o \
  326.     OBJ:rip.o
  327.  
  328. # All the object files for NetHack:
  329.  
  330. HOBJ = $(COMMOBJ) $(AMIGAOBJ) $(SHAREOBJ) $(MAKEDEFOBJ) $(TTYOBJ)
  331.  
  332. # Getting down to business:
  333.  
  334. all:  $(COMPACT_HEADERS) NetHack:lev_comp NetHack:dgn_comp $(GAME) \
  335.     NetHack:HackWB NetHack:recover NetHack:HackCli NetHack:splitter
  336.  
  337. install: inst-data inst-dungeon inst-icons inst-fonts inst-sounds HackExe:NetHack.dir
  338.  
  339. Amiga:compacted:
  340.     lmk -f compact.lmk DST=$(COMPACT_DEST) SRC=$(COMPACT_SRC)
  341.  
  342. $(GAME):  $(HOBJ) Amiga:ami.lnk
  343.     $(LINK) $(PNSPEC)$(GAME) $(LIN) $(LLINK) $(LLIB)
  344.  
  345. link:
  346.     $(LINK) $(PNSPEC)$(GAME) $(LIN) $(LLINK) $(LLIB)
  347.  
  348. OBJ:Game.gst: $(GSTHEAD)
  349.     $(CC) $(CFLAGS) makegst $(NHGSTFILE) $(GSTSRC)
  350.  
  351. OBJ:MakeDefs.gst: $(GSTSRC)
  352.     $(CC) $(CFLAGS) define=TEMP_BUILD makegst $(MKGSTFILE) $(GSTSRC)
  353.  
  354. copymgst:
  355.     copy $(MKGSTFILE) to $(GSTFILE)
  356.  
  357. copyngst:
  358.     copy $(NHGSTFILE) to $(GSTFILE)
  359.  
  360. Amiga:ami.lnk: Amiga:Makefile.ami
  361.     list to Amiga:ami.lnk lformat="OBJ:%s" OBJ:\#?.o QUICK NOHEAD
  362.  
  363. obj:  $(HOBJ)
  364. obja:  $(AMIGAOBJ)
  365. objs:  $(SHAREOBJ)
  366.  
  367. # The default method for creating object files:
  368.  
  369. #[SAS6]
  370.  
  371. .c.o:
  372.     $(CC) $(CFLAGS) $(CSYM) $(OBJSPEC)$@ $<
  373.  
  374. #[DICE]
  375.  
  376. #$(COMMOBJ):
  377. #    $(CC) $(CFLAGS) $(CSYM) $(OBJSPEC)$@ NHS:$*.c
  378.  
  379. #$(AMIGAOBJ):
  380. #    $(CC) $(CFLAGS) $(CSYM) $(OBJSPEC)$@ Amiga:$*.c
  381.  
  382. #$(SHAREOBJ):
  383. #    $(CC) $(CFLAGS) $(CSYM) $(OBJSPEC)$@ Share:$*.c
  384.  
  385. clean:
  386.     -delete OBJ:\#?.o OBJO:\#?.o
  387.  
  388. spotless:  clean
  389.     -delete $(GAME) NetHack:lev_comp NetHack:makedefs NetHack:dgn_comp
  390.     -delete Amiga:8
  391.     -delete Amiga:hack.font
  392.     -delete Dat:data Dat:rumors
  393.     -delete NetHack:data NetHack:rumors
  394.     -delete NetHack:castle.lev NetHack:dungeon
  395.     -delete NetHack:earth.lev NetHack:air.lev NetHack:fire.lev
  396.     -delete NetHack:water.lev NetHack:astral.lev
  397.     -delete NetHack:tower1.lev NetHack:tower2.lev NetHack:tower3.lev
  398.     -delete NetHack:fakewiz1.lev NetHack:fakewiz2.lev
  399.     -delete NetHack:medusa-1.lev NetHack:medusa-2.lev
  400.     -delete NetHack:oracle.lev NetHack:wizard1.lev NetHack:wizard2.lev
  401.     -delete NetHack:wizard3.lev NetHack:dungeon.pdf NetHack:valley.lev
  402.     -delete NetHack:minetown.lev NetHack:minefill.lev
  403.     -delete $(ADFILES)
  404.     -delete $(BDFILES)
  405.     -delete $(CDFILES)
  406.     -delete $(EDFILES)
  407.     -delete $(HDFILES)
  408.     -delete $(KDFILES)
  409.     -delete $(PDFILES)
  410.     -delete $(RDFILES)
  411.     -delete $(SDFILES)
  412.     -delete $(TDFILES)
  413.     -delete $(VDFILES)
  414.     -delete $(WDFILES)
  415.     -delete Incl:onames.h Incl:pm.h
  416.     -echo to Incl:onames.h "" noline
  417.     -wait 2
  418.     -echo to Incl:pm.h "" noline
  419.     -wait 2
  420.     -setdate NHS:makedefs.c
  421.     -wait 2
  422.  
  423. # Creating precompiled version of Incl:hack.h to save disk I/O.
  424.  
  425. #[SAS5]
  426. #   If we were to use the precompiled header file feature of SAS/C, we
  427. #   would uncomment the following lines.  (Also see defines for HDEP and
  428. #   CSYM near the beginning of this file, as these should be appropriately
  429. #   defined.)
  430.  
  431. #$(HDEP):  Incl:hack.h NetHack:makedefs
  432. #    echo to Ram:hackincl.c "#include <Incl:hack.h>"
  433. #    $(CC) $(CFLAGS) -ph $(OBJSPEC)$@ Ram:hackincl.c
  434. #    -delete Ram:hackincl.c
  435.  
  436. #[MANX]
  437. #   If we were compiling with Aztec, and wanted to use the symbol table
  438. #   pre-loading feature, we would uncomment these following two lines.
  439.  
  440. #$(HDEP):  Incl:hack.h NetHack:makedefs
  441. #    $(CC) $(CFLAGS) -a $(OBJSPEC)Ram:hack.asm +h$@ Incl:hack.h
  442. #    -delete Ram:hack.asm
  443.  
  444. #[DICE]
  445. #   If we were compiling with DICE and wanted to use the symbol table
  446. #   pre-loading feature, we would not need a rule to make the
  447. #   precompiled header file, because DCC handles this automatically.
  448.  
  449. #
  450. #    Please note:    The dependency lines for the modules here are
  451. #            deliberately incorrect.  Including "hack.h" in
  452. #            the dependency list would cause a dependency
  453. #            loop.
  454. #
  455.  
  456. NetHack:makedefs:  $(MKGSTFILE) $(COPYMGST) $(MAKEOBJS)
  457.     $(LINK) $(PNSPEC)NetHack:makedefs $(LIN) $(MAKEOBJS) $(LLIB)
  458.  
  459. OBJO:makedefs.o:  Util:makedefs.c Incl:config.h Incl:permonst.h Incl:objclass.h  Incl:patchlevel.h Incl:qtext.h Incl:artilist.h
  460.     $(CC) $(DEFSPEC)MAKEDEFS_C $(CFLAGS) $(OBJSPEC)$@ Util:makedefs.c
  461.  
  462. NetHack:lev_comp:  $(SPLEVOBJS)
  463.     $(LINK) $(PNSPEC)NetHack:lev_comp $(LIN) $(SPLEVOBJS) $(FBFIL) $(FLLIB)
  464.  
  465. NetHack:dgn_comp:  $(DGNCOMPOBJS)
  466.     $(LINK) $(PNSPEC)NetHack:dgn_comp $(LIN) $(DGNCOMPOBJS) $(FBFIL) $(FLLIB)
  467.  
  468. OBJO:lev_yacc.o:  Util:lev_yacc.c $(HDEP) Incl:sp_lev.h Incl:pm.h Incl:onames.h
  469.     setdate Util:lev_yacc.c
  470.     $(CC) $(DEFSPEC)LEV_LEX_C $(CFLAGS) $(OBJSPEC)$@ Util:lev_yacc.c
  471.  
  472. OBJO:lev_lex.o: Util:lev_lex.c $(HDEP) Incl:lev_comp.h Incl:sp_lev.h
  473.     $(CC) $(DEFSPEC)LEV_LEX_C $(CFLAGS) $(OBJSPEC)$@ Util:lev_lex.c
  474.  
  475. OBJO:lev_main.o:  Util:lev_main.c $(HDEP)
  476.     $(CC) $(DEFSPEC)LEV_LEX_C $(DEFSPEC)AMIGA $(CFLAGS) $(OBJSPEC)$@ Util:lev_main.c
  477.  
  478. OBJO:dgn_yacc.o:  Util:dgn_yacc.c $(HDEP) Incl:dgn_file.h
  479.     $(CC) $(DEFSPEC)LEV_LEX_C $(CFLAGS) $(OBJSPEC)$@ Util:dgn_yacc.c
  480.  
  481. OBJO:dgn_lex.o: Util:dgn_lex.c $(HDEP) Incl:dgn_comp.h
  482.     $(CC) $(DEFSPEC)LEV_LEX_C $(CFLAGS) $(OBJSPEC)$@ Util:dgn_lex.c
  483.  
  484. OBJO:dgn_main.o: Util:dgn_main.c $(HDEP)
  485.     $(CC) $(DEFSPEC)LEV_LEX_C $(DEFSPEC)AMIGA $(CFLAGS) $(OBJSPEC)$@ Util:dgn_main.c
  486.  
  487. OBJO:panic.o: Util:panic.c $(HDEP)
  488.  
  489. OBJO:recover.o: Util:recover.c $(HDEP)
  490.     $(CC) $(DEFSPEC)LEV_LEX_C $(DEFSPEC)AMIGA $(CFLAGS) $(OBJSPEC)$@ Util:recover.c
  491.  
  492. NetHack:recover: OBJO:recover.o
  493.     $(LINK) $(PNSPEC)NetHack:recover $(LIN) OBJO:recover.o $(LLIB)
  494.  
  495. # [OPTION] -- If you have flex/bison, leave these uncommented.  Otherwise,
  496. # comment them out and be careful! (You're not guaranteed to have the most
  497. # up to date *_comp.c, *_comp.h and *_lex.c)
  498.  
  499. Incl:lev_comp.h: Util:lev_yacc.c
  500.  
  501. Util:lev_yacc.c:  Util:lev_comp.y
  502.     $(BISON) -d Util:lev_comp.y
  503.     copy Util:lev_comp.tab.c Util:lev_yacc.c
  504.     copy Util:lev_comp.tab.h Incl:lev_comp.h
  505.     delete Util:lev_comp.tab.c
  506.     delete Util:lev_comp.tab.h
  507.  
  508. Util:lev_lex.c:  Util:lev_comp.l
  509.     $(FLEX) Util:lev_comp.l
  510.     copy lex.yy.c Util:lev_lex.c
  511.     delete lex.yy.c
  512.  
  513. Incl:dgn_comp.h: Util:dgn_yacc.c
  514.  
  515. Util:dgn_yacc.c:  Util:dgn_comp.y
  516.     $(BISON) -d Util:dgn_comp.y
  517.     copy Util:dgn_comp.tab.c Util:dgn_yacc.c
  518.     copy Util:dgn_comp.tab.h Incl:dgn_comp.h
  519.     delete Util:dgn_comp.tab.c
  520.     delete Util:dgn_comp.tab.h
  521.  
  522. Util:dgn_lex.c:  Util:dgn_comp.l
  523.     $(FLEX) Util:dgn_comp.l
  524.     copy lex.yy.c Util:dgn_lex.c
  525.     delete lex.yy.c
  526.  
  527. #
  528. #    The following include files depend on makedefs to be created.
  529. #    As a result, they are not defined in HACKINCL, instead, their
  530. #    dependencies are explicitly outlined here.
  531. #
  532.  
  533. #
  534. #    date.h should be remade any time any of the source or include code
  535. #    is modified.  Unfortunately, this would make the contents of this
  536. #    file far more complex.    Since "hack.h" depends on most of the include
  537. #    files, we kludge around this by making date.h dependent on hack.h,
  538. #    even though it doesn't include this file.
  539. #
  540.  
  541. Incl:date.h Dat:options:  $(HDEP) NetHack:makedefs $(AMIGAOBJ)
  542.     NetHack:makedefs -v
  543.     $(EXECUTE) Amiga:ifchange MOVE Incl:t.date.h Incl:date.h
  544.     -wait 2
  545.  
  546. Incl:onames.h:  NetHack:makedefs
  547.     NetHack:makedefs -o
  548.     $(EXECUTE) Amiga:ifchange TOUCH Incl:t.onames.h Incl:onames.h Incl:decl.h
  549.     $(EXECUTE) Amiga:ifchange MOVE Incl:t.onames.h Incl:onames.h
  550.     -wait 2
  551.  
  552. Incl:pm.h:  NetHack:makedefs
  553.     NetHack:makedefs -p
  554.     $(EXECUTE) Amiga:ifchange TOUCH Incl:t.pm.h Incl:pm.h Incl:decl.h Incl:youprop.h
  555.     $(EXECUTE) Amiga:ifchange MOVE Incl:t.pm.h Incl:pm.h
  556.     -wait 2
  557.  
  558. NetHack:quest.dat:    Dat:quest.dat
  559.     copy Dat:quest.dat $@
  560.  
  561. Dat:quest.dat:    Dat:quest.txt NetHack:makedefs
  562.     NetHack:makedefs -q
  563.  
  564. NHS:monstr.c:  $(HDEP) NetHack:makedefs
  565.     NetHack:makedefs -m
  566.     -wait 2
  567.  
  568. Dat:oracles:    Dat:oracles.txt NetHack:makedefs
  569.     NetHack:makedefs -h
  570.     -wait 2
  571.  
  572. #
  573. #    The following programs vary depending on what OS you are using.
  574. #    As a result, they are not defined in HACKSRC and their dependancies
  575. #    are explicitly outlined here.
  576. #
  577.  
  578. OBJ:amidos.o:  Amiga:amidos.c $(HDEP)
  579.  
  580. OBJ:amirip.o:  Amiga:amirip.c $(HDEP)
  581.  
  582. OBJ:aglue.o:  Amiga:aglue.a
  583.     $(ASM) -d $(AFLAGS) -oOBJ:aglue.o Amiga:aglue.a
  584.  
  585. OBJ:amisnd.o:    Amiga:amisnd.c $(HDEP)
  586.  
  587. OBJ:winstr.o:    Amiga:winstr.c $(HDEP) $(AMDEP)
  588.  
  589. OBJ:winreq.o:    Amiga:winreq.c $(HDEP) $(AMDEP) Amiga:colorwin.c
  590.  
  591. OBJ:winfuncs.o:    Amiga:winfuncs.c $(HDEP) $(AMDEP) Incl:patchlevel.h
  592.  
  593. OBJ:winkey.o:    Amiga:winkey.c $(HDEP) $(AMDEP)
  594.  
  595. OBJ:winmenu.o:    Amiga:winmenu.c $(HDEP) $(AMDEP)
  596.  
  597. OBJ:winami.o:    Amiga:winami.c $(HDEP) $(AMDEP) Amiga:char.c Amiga:randwin.c
  598.  
  599. OBJ:amilib.o:    Amiga:amilib.c $(HDEP) $(AMDEP)
  600.  
  601. OBJ:amiwind.o:  Amiga:amiwind.c $(HDEP) $(AMDEP)
  602.  
  603. OBJ:amiwbench.o:  Amiga:amiwbench.c $(HDEP)
  604.  
  605. OBJ:random.o:  Share:random.c
  606.  
  607. OBJ:pcmain.o:  Share:pcmain.c $(HDEP)
  608.  
  609. # Stuff to build the front ends
  610. NetHack:HackWB: OBJO:wb.o OBJO:wbx.o OBJO:loader.o OBJO:multi.o
  611.     $(LINK) $(PNSPEC)NetHack:HackWB $(LIN) OBJO:wb.o OBJO:wbx.o OBJO:loader.o OBJO:multi.o $(LLIB)
  612.  
  613. NetHack:HackCli: OBJO:cli.o OBJO:loader.o OBJO:multi.o
  614.     $(LINK) $(PNSPEC)NetHack:HackCli $(LIN) OBJO:cli.o OBJO:loader.o OBJO:multi.o $(LLIB)
  615.  
  616. # This needs to exist to eliminate the HackWB startup message
  617. NetHack:WBDefaults.def:
  618.     echo to NetHack:WBDefaults.def
  619.  
  620. WBH    = Amiga:wbdefs.h Amiga:wbstruct.h Amiga:wbprotos.h
  621. ASP    = Amiga:splitter
  622. OBJO:wb.o: $(WBH) Amiga:wb.c Amiga:wbwin.c Amiga:wbdata.c
  623.     $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:wb.o Amiga:wb.c
  624. OBJO:wbx.o: $(WBH) Amiga:wbcli.c Amiga:wbwin.c Amiga:wbdata.c #Incl:date.h
  625.     $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:wbx.o Amiga:wbcli.c
  626. OBJO:loader.o: $(ASP)/loader.c $(ASP)/split.h $(ASP)/amiout.h $(ASP)/multi.h
  627.     $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:loader.o $(ASP)/loader.c
  628. OBJO:multi.o: $(ASP)/multi.c $(ASP)/multi.h
  629.     $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:multi.o $(ASP)/multi.c
  630. OBJO:cli.o: $(WBH) Amiga:wbcli.c Incl:patchlevel.h #Incl:date.h
  631.     $(CC) $(WBCFLAGS) $(WBC2FLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:cli.o Amiga:wbcli.c
  632. ####
  633. # splitter support
  634. NetHack:splitter:    OBJO:splitter.o OBJO:arg.o
  635.     $(LINK) $(PNSPEC)NetHack:splitter $(LIN) OBJO:splitter.o OBJO:arg.o $(LLIB)
  636. HackExe:NetHack.dir:    NetHack:splitter Hackexe:NetHack
  637.     NetHack:splitter $(GAME)
  638.  
  639. OBJO:splitter.o:    $(ASP)/splitter.c $(ASP)/split.h $(ASP)/amiout.h $(ASP)/arg.h
  640.     $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:splitter.o $(ASP)/splitter.c
  641. OBJO:arg.o:    $(ASP)/arg.c $(ASP)/arg.h
  642.     $(CC) $(WBCFLAGS) $(SPLFLAGS) $(OBJSPEC)OBJO:arg.o $(ASP)/arg.c 
  643.  
  644. # Create/copy other stuff into NetHack: directory:
  645.  
  646. # quest files
  647. ADFILES= NetHack:A-goal.lev NetHack:A-fill.lev NetHack:A-locate.lev NetHack:A-start.lev
  648. BDFILES= NetHack:B-goal.lev NetHack:B-fill.lev NetHack:B-locate.lev NetHack:B-start.lev
  649. CDFILES= NetHack:C-goal.lev NetHack:C-fill.lev NetHack:C-locate.lev NetHack:C-start.lev
  650. EDFILES= NetHack:E-goal.lev NetHack:E-fill.lev NetHack:E-locate.lev NetHack:E-start.lev
  651. HDFILES= NetHack:H-goal.lev NetHack:H-fill.lev NetHack:H-locate.lev NetHack:H-start.lev
  652. KDFILES= NetHack:K-goal.lev NetHack:K-fill.lev NetHack:K-locate.lev NetHack:K-start.lev
  653. PDFILES= NetHack:P-goal.lev NetHack:P-fill.lev NetHack:P-locate.lev NetHack:P-start.lev
  654. RDFILES= NetHack:R-goal.lev NetHack:R-fill.lev NetHack:R-locate.lev NetHack:R-start.lev
  655. SDFILES= NetHack:S-goal.lev NetHack:S-fill.lev NetHack:S-locate.lev NetHack:S-start.lev
  656. TDFILES= NetHack:T-goal.lev NetHack:T-fill.lev NetHack:T-locate.lev NetHack:T-start.lev
  657. VDFILES= NetHack:V-goal.lev NetHack:V-fill.lev NetHack:V-locate.lev NetHack:V-start.lev
  658. WDFILES= NetHack:W-goal.lev NetHack:W-fill.lev NetHack:W-locate.lev NetHack:W-start.lev
  659.  
  660. XDFILES=    $(ADFILES) $(BDFILES) $(CDFILES) $(EDFILES) $(HDFILES) \
  661.         $(KDFILES) $(PDFILES) $(RDFILES) $(SDFILES) $(TDFILES) \
  662.         $(VDFILES) $(WDFILES)
  663.  
  664. SOUNDFILES= \
  665.     NetHack:cvtsnd \
  666.     NetHack:sounds \
  667.     NetHack:sounds/Bell NetHack:sounds/Bugle NetHack:sounds/Drum_Of_Earthquake \
  668.     NetHack:sounds/Fire_Horn NetHack:sounds/Frost_Horn \
  669.     NetHack:sounds/Leather_Drum NetHack:sounds/Magic_Flute \
  670.     NetHack:sounds/Magic_Harp NetHack:sounds/Tooled_Horn \
  671.     NetHack:sounds/Wooden_Flute NetHack:sounds/Wooden_Harp
  672.  
  673. inst-sounds: ${SOUNDFILES}
  674.  
  675. NetHack:sounds:
  676.     -makedir NetHack:sounds
  677.  
  678. NetHack:cvtsnd: OBJO:cvtsnd.o
  679.     ${LINK} ${PNSPEC}$@ $(LIN) OBJO:cvtsnd.o $(FLLIB)
  680.  
  681. OBJO:cvtsnd.o: Amiga:cvtsnd.c
  682.  
  683. NetHack:sounds/Bell: share:sounds/bell.uu
  684.     uudecode share:sounds/bell.uu
  685.     NetHack:cvtsnd Bell NetHack:sounds/Bell
  686.     -delete Bell
  687.  
  688. NetHack:sounds/Bugle: share:sounds/bugle.uu
  689.     uudecode share:sounds/Bugle.uu
  690.     NetHack:cvtsnd Bugle NetHack:sounds/Bugle
  691.     -delete Bugle
  692.  
  693. NetHack:sounds/Drum_Of_Earthquake: share:sounds/erthdrum.uu
  694.     uudecode share:sounds/erthdrum.uu
  695.     NetHack:cvtsnd Drum_Of_Earthquake NetHack:sounds/Drum_Of_Earthquake
  696.     -delete Drum_Of_Earthquake
  697.  
  698. NetHack:sounds/Fire_Horn: share:sounds/firehorn.uu
  699.     uudecode share:sounds/firehorn.uu
  700.     NetHack:cvtsnd Fire_Horn NetHack:sounds/Fire_Horn
  701.     -delete Fire_Horn
  702.  
  703. NetHack:sounds/Frost_Horn: share:sounds/frsthorn.uu
  704.     uudecode share:sounds/frsthorn.uu
  705.     NetHack:cvtsnd Frost_Horn NetHack:sounds/Frost_Horn
  706.     -delete Frost_Horn
  707.  
  708. NetHack:sounds/Leather_Drum: share:sounds/lethdrum.uu
  709.     uudecode share:sounds/lethdrum.uu
  710.     NetHack:cvtsnd Leather_Drum NetHack:sounds/Leather_Drum
  711.     -delete Leather_Drum
  712.  
  713. NetHack:sounds/Magic_Flute: share:sounds/mgcflute.uu
  714.     uudecode share:sounds/mgcflute.uu
  715.     NetHack:cvtsnd Magic_Flute NetHack:sounds/Magic_Flute
  716.     -delete Magic_Flute
  717.  
  718. NetHack:sounds/Magic_Harp: share:sounds/mgcharp.uu
  719.     uudecode share:sounds/mgcharp.uu
  720.     NetHack:cvtsnd Magic_Harp NetHack:sounds/Magic_Harp
  721.     -delete Magic_Harp
  722.  
  723. NetHack:sounds/Tooled_Horn: share:sounds/toolhorn.uu
  724.     uudecode share:sounds/toolhorn.uu
  725.     NetHack:cvtsnd Tooled_Horn NetHack:sounds/Tooled_Horn
  726.     -delete Tooled_Horn
  727.  
  728. NetHack:sounds/Wooden_Flute: share:sounds/wdnflute.uu
  729.     uudecode share:sounds/wdnflute.uu
  730.     NetHack:cvtsnd Wooden_Flute NetHack:sounds/Wooden_Flute
  731.     -delete Wooden_Flute
  732.  
  733. NetHack:sounds/Wooden_Harp: share:sounds/wdnharp.uu
  734.     uudecode share:sounds/wdnharp.uu
  735.     NetHack:cvtsnd Wooden_Harp NetHack:sounds/Wooden_Harp
  736.     -delete Wooden_Harp
  737.  
  738. INSTDUNGEONFILES= \
  739.     NetHack:NetHack.cnf NetHack:air.lev NetHack:asmodeus.lev \
  740.     NetHack:astral.lev NetHack:baalz.lev NetHack:bigroom.lev \
  741.     NetHack:castle.lev NetHack:dungeon NetHack:earth.lev \
  742.     NetHack:fakewiz1.lev NetHack:fakewiz2.lev NetHack:fire.lev \
  743.     NetHack:juiblex.lev NetHack:knox.lev NetHack:medusa-1.lev \
  744.     NetHack:medusa-2.lev NetHack:mine_end.lev NetHack:minefill.lev \
  745.     NetHack:minetown.lev NetHack:options NetHack:oracle.lev \
  746.     NetHack:orcus.lev NetHack:sanctum.lev NetHack:tower1.lev \
  747.     NetHack:tower2.lev NetHack:tower3.lev NetHack:valley.lev \
  748.     NetHack:water.lev NetHack:wizard1.lev NetHack:wizard2.lev \
  749.     NetHack:wizard3.lev $(XDFILES)
  750.  
  751. DUNGEONTOOLS= \
  752.     NetHack:lev_comp NetHack:dgn_comp NetHack:makedefs
  753.  
  754. inst-dungeon: $(INSTDUNGEONFILES)
  755.  
  756. NetHack:options : Dat:options
  757.     copy Dat:options $@
  758.  
  759. # Create compiled dungeon files
  760. NetHack:bigroom.lev:    Dat:bigroom.des NetHack:lev_comp
  761.     NetHack:lev_comp Dat:bigroom.des
  762.  
  763. NetHack:castle.lev:  Dat:castle.des NetHack:lev_comp
  764.     NetHack:lev_comp Dat:castle.des
  765.  
  766. NetHack:air.lev NetHack:earth.lev NetHack:fire.lev NetHack:water.lev NetHack:astral.lev:    do_endgame
  767. do_endgame:    Dat:endgame.des NetHack:lev_comp
  768.     NetHack:lev_comp Dat:endgame.des
  769.  
  770. NetHack:asmodeus.lev NetHack:baalz.lev NetHack:juiblex.lev NetHack:orcus.lev NetHack:sanctum.lev NetHack:valley.lev:    do_gehennom
  771. do_gehennom:    Dat:gehennom.des NetHack:lev_comp
  772.     NetHack:lev_comp Dat:gehennom.des
  773.  
  774. NetHack:knox.lev: Dat:knox.des NetHack:lev_comp
  775.     NetHack:lev_comp Dat:knox.des
  776.  
  777. NetHack:mine_end.lev NetHack:minetown.lev NetHack:minefill.lev:    do_mines
  778. do_mines:    Dat:mines.des NetHack:lev_comp
  779.     NetHack:lev_comp Dat:mines.des
  780.  
  781. NetHack:oracle.lev: Dat:oracle.des NetHack:lev_comp
  782.     NetHack:lev_comp Dat:oracle.des
  783.  
  784. NetHack:tower1.lev NetHack:tower2.lev NetHack:tower3.lev:    do_tower
  785. do_tower:    Dat:tower.des NetHack:lev_comp
  786.     NetHack:lev_comp Dat:tower.des
  787.  
  788. NetHack:wizard1.lev NetHack:wizard2.lev NetHack:wizard3.lev NetHack:fakewiz1.lev NetHack:fakewiz2.lev:  do_yendor
  789. do_yendor:    Dat:yendor.des NetHack:lev_comp
  790.     NetHack:lev_comp Dat:yendor.des
  791.  
  792. NetHack:medusa-1.lev NetHack:medusa-2.lev:    do_medusa
  793. do_medusa:    Dat:medusa.des NetHack:lev_comp
  794.     NetHack:lev_comp Dat:medusa.des
  795.  
  796. $(ADFILES):    do_adfiles
  797. do_adfiles:    Dat:Arch.des NetHack:lev_comp
  798.     NetHack:lev_comp Dat:Arch.des
  799.  
  800. $(BDFILES):    do_bdfiles
  801. do_bdfiles:    Dat:Barb.des NetHack:lev_comp
  802.     NetHack:lev_comp Dat:Barb.des
  803.  
  804. $(CDFILES):    do_cdfiles
  805. do_cdfiles:    Dat:Caveman.des NetHack:lev_comp
  806.     NetHack:lev_comp Dat:Caveman.des
  807.  
  808. $(EDFILES):    do_edfiles
  809. do_edfiles:    Dat:Elf.des NetHack:lev_comp
  810.     NetHack:lev_comp Dat:Elf.des
  811.  
  812. $(HDFILES):    do_hdfiles
  813. do_hdfiles:    Dat:Healer.des NetHack:lev_comp
  814.     NetHack:lev_comp Dat:Healer.des
  815.  
  816. $(KDFILES):    do_kdfiles
  817. do_kdfiles:    Dat:Knight.des NetHack:lev_comp
  818.     NetHack:lev_comp Dat:Knight.des
  819.  
  820. $(PDFILES):    do_pdfiles
  821. do_pdfiles:    Dat:Priest.des NetHack:lev_comp
  822.     NetHack:lev_comp Dat:Priest.des
  823.  
  824. $(RDFILES):    do_rdfiles
  825. do_rdfiles:    Dat:Rogue.des NetHack:lev_comp
  826.     NetHack:lev_comp Dat:Rogue.des
  827.  
  828. $(SDFILES):    do_sdfiles
  829. do_sdfiles:    Dat:Samurai.des NetHack:lev_comp
  830.     NetHack:lev_comp Dat:Samurai.des
  831.  
  832. $(TDFILES):    do_tdfiles
  833. do_tdfiles:    Dat:Tourist.des NetHack:lev_comp
  834.     NetHack:lev_comp Dat:Tourist.des
  835.  
  836. $(VDFILES):    do_vdfiles
  837. do_vdfiles:    Dat:Valkyrie.des NetHack:lev_comp
  838.     NetHack:lev_comp Dat:Valkyrie.des
  839.  
  840. $(WDFILES):    do_wdfiles
  841. do_wdfiles:    Dat:Wizard.des NetHack:lev_comp
  842.     NetHack:lev_comp Dat:Wizard.des
  843.  
  844. NetHack:dungeon:  Dat:dungeon.def NetHack:makedefs NetHack:dgn_comp
  845.     NetHack:makedefs -e
  846.     NetHack:dgn_comp Dat:dungeon.pdf
  847.     copy Dat:dungeon NetHack:dungeon
  848.     delete Dat:dungeon
  849.  
  850. DATAFILES= \
  851.     Dat:data Dat:rumors Dat:cmdhelp Dat:quest.dat
  852. INSTDATAFILES= \
  853.     NetHack:cmdhelp NetHack:data NetHack:help NetHack:hh NetHack:history \
  854.     NetHack:license NetHack:logfile NetHack:opthelp NetHack:oracles \
  855.     NetHack:perm NetHack:quest.dat NetHack:record NetHack:rumors \
  856.     NetHack:wizhelp NetHack:HackWB.hlp NetHack:WBDefaults.def \
  857.     NetHack:amii.hlp
  858.  
  859. inst-data: $(INSTDATAFILES)
  860.  
  861. NetHack:amii.hlp: Amiga:amii.hlp
  862.     copy Amiga:amii.hlp $@
  863.  
  864. NetHack:data:  Dat:data
  865.     copy Dat:data $@
  866.  
  867. Dat:data:  Dat:data.base Incl:config.h NetHack:makedefs
  868.     NetHack:makedefs -d
  869.  
  870. NetHack:rumors:  Dat:rumors
  871.     copy Dat:rumors $@
  872.  
  873. Dat:rumors:  Dat:rumors.tru Dat:rumors.fal NetHack:makedefs
  874.     NetHack:makedefs -r
  875.  
  876. NetHack:cmdhelp:  Dat:cmdhelp
  877.     copy Dat:cmdhelp $@
  878.  
  879. NetHack:help:  Dat:help
  880.     copy Dat:help $@
  881.  
  882. NetHack:hh:  Dat:hh
  883.     copy Dat:hh $@
  884.  
  885. NetHack:HackWB.hlp: Amiga:HackWB.hlp
  886.     copy Amiga:HackWB.hlp $@
  887.  
  888. NetHack:history:  Dat:history
  889.     copy Dat:history $@
  890.  
  891. NetHack:license:  Dat:license
  892.     copy Dat:license $@
  893.  
  894. NetHack:opthelp:  Dat:opthelp
  895.     copy Dat:opthelp $@
  896.  
  897. NetHack:oracles:  Dat:oracles
  898.     copy Dat:oracles $@
  899.  
  900. NetHack:perm:
  901.     echo to $@
  902.  
  903. NetHack:logfile:
  904.     echo to $@
  905.  
  906. NetHack:record:
  907.     echo to $@
  908.  
  909. NetHack:wizhelp:
  910.     copy Dat:wizhelp $@
  911.  
  912. # Create the directories here because NetHack.cnf puts them there by default
  913. NetHack:NetHack.cnf:  Amiga:NetHack.cnf
  914.     copy Amiga:NetHack.cnf $@
  915.     -makedir nethack:save
  916.     -makedir nethack:levels
  917.  
  918. # Unpack and install fonts
  919.  
  920. INSTFONTFILES= \
  921.     NetHack:hack.font NetHack:hack NetHack:hack/8
  922. inst-fonts: $(INSTFONTFILES)
  923.  
  924. NetHack:hack/8:  Amiga:amifont8.uu NetHack:hack
  925.     $(UUDEC) Amiga:amifont8.uu
  926.     -rename 8 hack/8
  927.  
  928. NetHack:hack.font:  Amiga:amifont.uu
  929.     $(UUDEC) Amiga:amifont.uu
  930.  
  931. NetHack:hack:
  932.     makedir $@
  933.  
  934. INSTICONFILES= \
  935.     NetHack:default.icon NetHack:NetHack.info NetHack:NewGame.info \
  936.     NetHack:HackWB.info
  937.  
  938. inst-icons: $(INSTICONFILES)
  939.  
  940. # Unpack the icons into place
  941.  
  942. NetHack:default.icon:  Amiga:dflticon.uu
  943.     $(UUDEC) Amiga:dflticon.uu
  944.  
  945. NetHack:NetHack.info:  Amiga:NHinfo.uu
  946.     $(UUDEC) Amiga:NHinfo.uu
  947.  
  948. NetHack:NewGame.info:  Amiga:NewGame.uu
  949.     $(UUDEC) Amiga:NewGame.uu
  950.  
  951. NetHack:HackWB.info:  Amiga:HackWB.uu
  952.     $(UUDEC) Amiga:HackWB.uu
  953.  
  954. # DO NOT DELETE THIS LINE
  955.  
  956. OBJ:allmain.o:  NHS:allmain.c $(HDEP)
  957. OBJ:alloc.o:  NHS:alloc.c Incl:config.h
  958. OBJ:apply.o:  NHS:apply.c $(HDEP) Incl:edog.h
  959.     $(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ NHS:apply.c
  960. OBJ:artifact.o:  NHS:artifact.c $(HDEP) Incl:artifact.h Incl:artilist.h
  961. OBJ:attrib.o:  NHS:attrib.c $(HDEP)
  962. OBJ:ball.o: NHS:ball.c $(HDEP)
  963. OBJ:bones.o:  NHS:bones.c $(HDEP) Incl:lev.h
  964. OBJ:botl.o:    NHS:botl.c $(HDEP)
  965. OBJ:cmd.o:  NHS:cmd.c $(HDEP) Incl:func_tab.h
  966. OBJ:dbridge.o:  NHS:dbridge.c $(HDEP)
  967. OBJ:decl.o:  NHS:decl.c $(HDEP) Incl:quest.h
  968. OBJ:detect.o: NHS:detect.c $(HDEP) Incl:artifact.h
  969. OBJ:display.o:  NHS:display.c $(HDEP)
  970. OBJ:do.o:  NHS:do.c $(HDEP) Incl:lev.h
  971. OBJ:do_name.o:  NHS:do_name.c $(HDEP)
  972. OBJ:do_wear.o:  NHS:do_wear.c $(HDEP)
  973. OBJ:dog.o:  NHS:dog.c $(HDEP) Incl:edog.h
  974. OBJ:dogmove.o:  NHS:dogmove.c $(HDEP) Incl:mfndpos.h Incl:edog.h
  975. OBJ:dokick.o:  NHS:dokick.c $(HDEP) Incl:eshk.h
  976. OBJ:dothrow.o:  NHS:dothrow.c $(HDEP)
  977. OBJ:drawing.o:  NHS:drawing.c $(HDEP) Incl:termcap.h
  978. OBJ:dungeon.o:  NHS:dungeon.c $(HDEP) Incl:dgn_file.h
  979. OBJ:eat.o:  NHS:eat.c $(HDEP)
  980. OBJ:end.o:  NHS:end.c $(HDEP) Incl:eshk.h
  981. OBJ:engrave.o:  NHS:engrave.c $(HDEP) Incl:lev.h
  982. OBJ:exper.o:  NHS:exper.c $(HDEP)
  983. OBJ:explode.o:  NHS:explode.c $(HDEP)
  984. OBJ:extralev.o:  NHS:extralev.c $(HDEP)
  985. OBJ:files.o:  NHS:files.c $(HDEP)
  986. OBJ:fountain.o:  NHS:fountain.c $(HDEP)
  987. OBJ:hack.o:  NHS:hack.c $(HDEP)
  988. OBJ:invent.o:  NHS:invent.c $(HDEP)
  989. OBJ:lock.o:  NHS:lock.c $(HDEP)
  990. OBJ:mail.o:  NHS:mail.c $(HDEP) Incl:mail.h
  991. OBJ:makemon.o:  NHS:makemon.c $(HDEP) Incl:epri.h Incl:emin.h
  992. OBJ:mcastu.o:  NHS:mcastu.c $(HDEP)
  993. OBJ:mhitm.o:  NHS:mhitm.c $(HDEP) Incl:artifact.h Incl:edog.h
  994. OBJ:mhitu.o:  NHS:mhitu.c $(HDEP) Incl:artifact.h Incl:edog.h
  995. OBJ:minion.o:  NHS:minion.c $(HDEP) Incl:emin.h Incl:epri.h
  996. OBJ:mklev.o:  NHS:mklev.c $(HDEP)
  997. OBJ:mkmap.o:  NHS:mkmap.c $(HDEP)
  998. OBJ:mkmaze.o:  NHS:mkmaze.c $(HDEP) Incl:sp_lev.h
  999. OBJ:mkobj.o:  NHS:mkobj.c $(HDEP) Incl:artifact.h Incl:prop.h
  1000. OBJ:mkroom.o:  NHS:mkroom.c $(HDEP)
  1001. OBJ:mon.o:  NHS:mon.c $(HDEP) Incl:mfndpos.h
  1002. OBJ:mondata.o:  NHS:mondata.c $(HDEP) Incl:eshk.h Incl:epri.h
  1003. OBJ:monmove.o:  NHS:monmove.c $(HDEP) Incl:mfndpos.h Incl:artifact.h
  1004. OBJ:monst.o:  NHS:monst.c Incl:config.h Incl:permonst.h Incl:monsym.h Incl:eshk.h Incl:vault.h Incl:epri.h Incl:color.h
  1005. OBJ:monstr.o:  NHS:monstr.c $(HDEP)
  1006. OBJ:mplayer.o:    NHS:mplayer.c $(HDEP)
  1007. OBJ:mthrowu.o:  NHS:mthrowu.c $(HDEP)
  1008. OBJ:hacklib.o:  NHS:hacklib.c $(HDEP)
  1009. OBJ:muse.o:    NHS:muse.c $(HDEP)
  1010. OBJ:music.o:  NHS:music.c $(HDEP)
  1011. OBJ:o_init.o:  NHS:o_init.c $(HDEP)
  1012. OBJ:objects.o:  NHS:objects.c Incl:config.h Incl:obj.h Incl:objclass.h Incl:prop.h Incl:color.h
  1013.     $(CC) $(CFLAGS) $(INCLSPEC)NHS: $(OBJSPEC)$@ NHS:objects.c
  1014. OBJ:objnam.o:  NHS:objnam.c $(HDEP)
  1015. OBJ:options.o:  NHS:options.c $(HDEP) Incl:termcap.h
  1016. OBJ:pager.o:  NHS:pager.c $(HDEP)
  1017. OBJ:pickup.o:  NHS:pickup.c $(HDEP)
  1018. OBJ:pline.o:    NHS:pline.c $(HDEP) Incl:epri.h
  1019. OBJ:polyself.o:  NHS:polyself.c $(HDEP)
  1020. OBJ:potion.o:  NHS:potion.c $(HDEP)
  1021. OBJ:pray.o:  NHS:pray.c $(HDEP) Incl:epri.h
  1022. OBJ:priest.o:  NHS:priest.c $(HDEP) Incl:mfndpos.h Incl:eshk.h Incl:epri.h Incl:emin.h
  1023. OBJ:quest.o:    NHS:quest.c $(HDEP) Incl:quest.h Incl:qtext.h
  1024. OBJ:questpgr.o: NHS:questpgr.c $(HDEP) Incl:qtext.h
  1025. OBJ:read.o:  NHS:read.c $(HDEP)
  1026. OBJ:rect.o:    NHS:rect.c $(HDEP)
  1027. OBJ:restore.o:  NHS:restore.c $(HDEP) Incl:lev.h Incl:termcap.h Incl:quest.h
  1028. OBJ:rnd.o:  NHS:rnd.c $(HDEP)
  1029. OBJ:rumors.o:  NHS:rumors.c $(HDEP)
  1030. OBJ:save.o:  NHS:save.c $(HDEP) Incl:lev.h Incl:quest.h
  1031. OBJ:shk.o:  NHS:shk.c $(HDEP) Incl:eshk.h
  1032.     $(CC) $(CFLAGS) $(CFLAGS2) $(OBJSPEC)$@ NHS:shk.c
  1033. OBJ:shknam.o:  NHS:shknam.c $(HDEP) Incl:eshk.h
  1034. OBJ:sit.o:  NHS:sit.c $(HDEP)
  1035. OBJ:sounds.o:  NHS:sounds.c $(HDEP) Incl:edog.h Incl:eshk.h
  1036. OBJ:sp_lev.o:  NHS:sp_lev.c $(HDEP) Incl:sp_lev.h Incl:rect.h
  1037. OBJ:spell.o:  NHS:spell.c $(HDEP)
  1038. OBJ:steal.o:  NHS:steal.c $(HDEP)
  1039. OBJ:timeout.o:  NHS:timeout.c $(HDEP)
  1040. OBJ:topten.o:  NHS:topten.c $(HDEP)
  1041. OBJ:track.o:  NHS:track.c $(HDEP)
  1042. OBJ:trap.o:  NHS:trap.c $(HDEP) Incl:edog.h
  1043. OBJ:u_init.o:  NHS:u_init.c $(HDEP)
  1044. OBJ:uhitm.o:  NHS:uhitm.c $(HDEP)
  1045. OBJ:vault.o:  NHS:vault.c $(HDEP) Incl:vault.h
  1046. OBJ:version.o:  NHS:version.c $(HDEP) Incl:date.h Incl:patchlevel.h
  1047. OBJ:vision.o:  NHS:vision.c $(HDEP)
  1048. OBJ:weapon.o:  NHS:weapon.c $(HDEP)
  1049. OBJ:were.o:  NHS:were.c $(HDEP)
  1050. OBJ:wield.o:  NHS:wield.c $(HDEP)
  1051. OBJ:wizard.o:  NHS:wizard.c $(HDEP) Incl:qtext.h
  1052. OBJ:windows.o:  NHS:windows.c $(HDEP)
  1053. OBJ:worm.o:  NHS:worm.c $(HDEP) Incl:lev.h
  1054. OBJ:worn.o:  NHS:worn.c $(HDEP)
  1055. OBJ:write.o:  NHS:write.c $(HDEP)
  1056. OBJ:zap.o:  NHS:zap.c $(HDEP)
  1057.  
  1058. OBJ:getline.o:    TTY:getline.c $(HDEP) Incl:wintty.h
  1059. OBJ:termcap.o:    TTY:termcap.c $(HDEP) Incl:wintty.h Incl:termcap.h
  1060. OBJ:topl.o:    TTY:topl.c $(HDEP) Incl:wintty.h Incl:termcap.h
  1061. OBJ:wintty.o:    TTY:wintty.c $(HDEP) Incl:wintty.h Incl:termcap.h
  1062. OBJ:amitty.o:    amiga:amitty.c $(HDEP)
  1063. OBJ:rip.o:    NHS:rip.c $(HDEP) #more?
  1064.  
  1065. Incl:config.h:  Incl:tradstdc.h Incl:global.h
  1066.     -setdate Incl:config.h
  1067.     -wait 2
  1068. # onames.h handled at onames.h target, pm.h
  1069. Incl:decl.h:  Incl:quest.h Incl:spell.h Incl:color.h Incl:obj.h Incl:you.h
  1070.     -setdate Incl:decl.h
  1071.     -wait 2
  1072. Incl:global.h:  Incl:coord.h Incl:pcconf.h Incl:amiconf.h
  1073.     -setdate Incl:global.h
  1074.     -wait 2
  1075.  
  1076. Incl:hack.h:  Incl:config.h Incl:trap.h Incl:decl.h Incl:dungeon.h Incl:monsym.h Incl:mkroom.h Incl:objclass.h Incl:flag.h Incl:rm.h Incl:vision.h Incl:display.h Incl:wintype.h Incl:engrave.h Incl:rect.h Incl:trampoli.h
  1077.     -setdate Incl:hack.h
  1078.     -wait 2
  1079. Incl:permonst.h:  Incl:monattk.h Incl:monflag.h Incl:align.h
  1080.     -setdate Incl:permonst.h
  1081.     -wait 2
  1082. Incl:you.h:  Incl:align.h Incl:attrib.h Incl:monst.h Incl:youprop.h
  1083.     -setdate Incl:you.h
  1084.     -wait 2
  1085. # pm.h handled at target
  1086. Incl:youprop.h:  Incl:prop.h Incl:permonst.h Incl:mondata.h
  1087.     -setdate Incl:youprop.h
  1088.     -wait 2
  1089. Incl:display.h: Incl:vision.h Incl:mondata.h
  1090.     -setdate Incl:display.h
  1091.     -wait 2
  1092. Incl:dungeon.h: Incl:align.h
  1093.     -setdate Incl:dungeon.h
  1094.     -wait 2
  1095. Incl:emin.h: Incl:dungeon.h
  1096.     -setdate Incl:emin.h
  1097.     -wait 2
  1098. Incl:epri.h: Incl:dungeon.h Incl:align.h
  1099.     -setdate Incl:epri.h
  1100.     -wait 2
  1101. Incl:eshk: Incl:Inl:dungeon.h
  1102.     -setdate Incl:eshk.h
  1103.     -wait 2
  1104. Incl:engrave.h: Incl:trampoli.h Incl:rect.h
  1105.     -setdate Incl:engrave.h
  1106.     -wait 2
  1107. Incl:mondata.h: Incl:align.h
  1108.     -setdate Incl:mondata.h
  1109.     -wait 2
  1110. Incl:monst.h: Incl:align.h
  1111.     -setdate Incl:monst.h
  1112.     -wait 2
  1113. Incl:pcconf.h: Incl:micro.h Incl:system.h
  1114.     -setdate Incl:pcconf.h
  1115.     -wait 2
  1116. Incl:rm.h: Incl:align.h
  1117.     -setdate Incl:rm.h
  1118.     -wait 2
  1119. Incl:vault.h: Incl:dungeon.h
  1120.     -setdate Incl:vault.h
  1121.     -wait 2
  1122.